import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import hs as h
data = pd.read_csv('数据.csv',encoding='gbk')
# 1.
print(data.head())
print(data.describe())
print(data.info())

# 2.

data = data.dropna(ignore_index=True)
# # 查看数据类型，方便进行数据的修改
# print(type(data.loc[0:'总价']))
h.chang(data.loc[:,'总价'],'万')
h.chang(data.loc[:,'建筑面积'],'平米')
h.chang(data.loc[:,'单价'],'元/平米')
# 3.

h.add_(data)

# 4.

h.print_all(data,'单价')
h.print_all(data,'总价')
h.print_all(data,'建筑面积')

# 5.

group_ax = data.groupby('区域',as_index=False).agg({'总价':'mean'})
group_ax = group_ax.sort_values('总价',ascending=True)
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
x = group_ax['区域']
y = group_ax['总价']
plt.barh(x,y)
plt.title('各区域平均总价')
plt.xlabel('/万元',loc='right',fontsize=10)
plt.ylabel('区域名',loc='top',fontsize=10,rotation=90)
for i in range(len(x)):
    plt.text(y[i], x[i], s=str(int(y[i])),va='center',ha='left',fontsize=10,color='black')
plt.show()

# 6.

hx = h.pops(data,'室')
hx_key = list(hx.keys())
hx_value = list(hx.values())
x = hx_key
y = hx_value
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.title('“几室”的户型数量分布')
plt.xlabel('/室',loc='right',fontsize=10)
plt.ylabel('个数',loc='top',fontsize=10,rotation=90)
plt.bar(x,y)
for i in range(0,len(x)):
    plt.text(x[i],y[i],str(y[i]),va = 'bottom',ha = 'center',fontsize=10)
plt.show()

# 7.

fy = h.pops(data,'装修')
ex = (0.1,0.1,0.1,0,0,0)
x = list(fy.keys())
y = list(fy.values())
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.pie(y,labels=x,autopct='%1.1f%%',explode=ex)
plt.title('装修类型在房源中的比例')
plt.show()

# 8.

data_x = list(map(int,data['建筑面积']))
data_y = list(data['单价'])
plt.scatter(data_y,data_x)
# 发现他的最大值有8000多，并且单价也接近0，可能为异常值，因此缩小图像范围
# plt.show()

plt.ylabel('平米',fontsize=10)
plt.xlabel('元/平米',fontsize=10)
plt.ylim(20,1000)
plt.title('面积和单价的关系')
plt.show()

# 9.
print("大部分人都选择2室型的房子，对房子的装修都选择精装修，房子的面积和单价的关系服从正态分布，并且净月的区域平均总价最高")
